package beans;

import java.util.List;

import javax.naming.NamingException;

import org.richfaces.component.html.HtmlDataTable;

import co.edu.uniquindio.ondas.delegados.AdministradorDelegado;
import co.edu.uniquindio.ondas.entidades.Convocatoria;
/**
 * @author Javier
 *Bean para el Evaluador del Sistema
 */
public class ConvocatoriaBean {
	private AdministradorDelegado administradorDelegado;
	private Convocatoria nuevaConvocatoria=new Convocatoria();
	private List<Convocatoria> listaConvocatorias;
	private HtmlDataTable tablaConvocatoria;
	private Convocatoria convocatoriaSeleccionada=new Convocatoria();
	private boolean convocatoriaCreada=false;
	private boolean convocatoriaEditada=false;
	private boolean convocatoriaEliminada=false;
	private String estado;
	
	/**
	 *Metodo constructor
	 * @throws NamingException
	 */
	public ConvocatoriaBean() throws NamingException {
		administradorDelegado=new AdministradorDelegado();
	}
	
	/**
	 * Metodo que permite obtener las convocatorias
	 * @return "convocatoria"
	 */
	public String obtenerConvocatorias()
	{
		listaConvocatorias=administradorDelegado.obtenerConvocatorias();
		return "convocatoria";
	}
	
	/**
	 * Metodo que permite la creacion de una convocatoria
	 * @return
	 */
	public String crearConvocatoria()
	{
		convocatoriaCreada=administradorDelegado.crearConvocatoria(nuevaConvocatoria);
		nuevaConvocatoria=new Convocatoria();
		return "";
	}
	
	/**
	 * Metodo que permite obtener la seleccion de una convocatoria en interfaz
	 * @return
	 */
	public String obtenerSeleccion()
	{
		convocatoriaSeleccionada=(Convocatoria) getTablaConvocatoria().getRowData();
		if (convocatoriaSeleccionada.isEstado()==true) {
			estado="Activa";
		}else
			if (convocatoriaSeleccionada.isEstado()==false) {
				estado="Inactiva";
			}
		return "editarConvocatoria";
	}
	
	/**
	 * Metodo que permite editar una convocatoria en el sistema
	 * @return
	 */
	public String editarConvocatoria()
	{
		convocatoriaEditada=administradorDelegado.editarConvocatoria(convocatoriaSeleccionada, estado);
		return "";
	}
	
	/**
	 * Metodo que permite obtener desde interfaz  una convocatoria a elimianar 
	 * @return
	 */
	public String obtenerConvocatoriaEliminar()
	{
		convocatoriaSeleccionada=(Convocatoria) getTablaConvocatoria().getRowData();
		return"";
	}
	
	/**
	 * Metodo que elimiana una convocatoria del sistema
	 * @return
	 */
	public String eliminarConvocatoria()
	{
		convocatoriaEliminada=administradorDelegado.eliminarConvocatoria(convocatoriaSeleccionada);
		return obtenerConvocatorias();
	}

	/**
	 *Metodo accesor del atributo nuevaConvocatoria
	 * @return the nuevaConvocatoria
	 */
	public Convocatoria getNuevaConvocatoria() {
		return nuevaConvocatoria;
	}

	/**
	 *Metodo Modificador del atributo nuevaConvocatoria
	 * @param nuevaConvocatoria the nuevaConvocatoria to set
	 */
	public void setNuevaConvocatoria(Convocatoria nuevaConvocatoria) {
		this.nuevaConvocatoria = nuevaConvocatoria;
	}

	/**
	 *Metodo accesor del atributo listaConvocatorias
	 * @return the listaConvocatorias
	 */
	public List<Convocatoria> getListaConvocatorias() {
		return listaConvocatorias;
	}

	/**
	 *Metodo Modificador del atributo listaConvocatorias
	 * @param listaConvocatorias the listaConvocatorias to set
	 */
	public void setListaConvocatorias(List<Convocatoria> listaConvocatorias) {
		this.listaConvocatorias = listaConvocatorias;
	}

	/**
	 *Metodo accesor del atributo tablaConvocatoria
	 * @return the tablaConvocatoria
	 */
	public HtmlDataTable getTablaConvocatoria() {
		return tablaConvocatoria;
	}

	/**
	 *Metodo Modificador del atributo tablaConvocatoria
	 * @param tablaConvocatoria the tablaConvocatoria to set
	 */
	public void setTablaConvocatoria(HtmlDataTable tablaConvocatoria) {
		this.tablaConvocatoria = tablaConvocatoria;
	}

	/**
	 *Metodo accesor del atributo convocatoriaSeleccionada
	 * @return the convocatoriaSeleccionada
	 */
	public Convocatoria getConvocatoriaSeleccionada() {
		return convocatoriaSeleccionada;
	}

	/**
	 *Metodo Modificador del atributo convocatoriaSeleccionada
	 * @param convocatoriaSeleccionada the convocatoriaSeleccionada to set
	 */
	public void setConvocatoriaSeleccionada(Convocatoria convocatoriaSeleccionada) {
		this.convocatoriaSeleccionada = convocatoriaSeleccionada;
	}

	/**
	 *Metodo accesor del atributo convocatoriaCreada
	 * @return the convocatoriaCreada
	 */
	public boolean isConvocatoriaCreada() {
		return convocatoriaCreada;
	}

	/**
	 *Metodo Modificador del atributo convocatoriaCreada
	 * @param convocatoriaCreada the convocatoriaCreada to set
	 */
	public void setConvocatoriaCreada(boolean convocatoriaCreada) {
		this.convocatoriaCreada = convocatoriaCreada;
	}

	/**
	 *Metodo accesor del atributo convocatoriaEditada
	 * @return the convocatoriaEditada
	 */
	public boolean isConvocatoriaEditada() {
		return convocatoriaEditada;
	}

	/**
	 *Metodo Modificador del atributo convocatoriaEditada
	 * @param convocatoriaEditada the convocatoriaEditada to set
	 */
	public void setConvocatoriaEditada(boolean convocatoriaEditada) {
		this.convocatoriaEditada = convocatoriaEditada;
	}

	/**
	 *Metodo accesor del atributo convocatoriaEliminada
	 * @return the convocatoriaEliminada
	 */
	public boolean isConvocatoriaEliminada() {
		return convocatoriaEliminada;
	}

	/**
	 *Metodo Modificador del atributo convocatoriaEliminada
	 * @param convocatoriaEliminada the convocatoriaEliminada to set
	 */
	public void setConvocatoriaEliminada(boolean convocatoriaEliminada) {
		this.convocatoriaEliminada = convocatoriaEliminada;
	}

	/**
	 *Metodo accesor del atributo estado
	 * @return the estado
	 */
	public String getEstado() {
		return estado;
	}

	/**
	 *Metodo Modificador del atributo estado
	 * @param estado the estado to set
	 */
	public void setEstado(String estado) {
		this.estado = estado;
	}
	
	
	
//	public Convocatoria getNuevaConvocatoria() {
//		return nuevaConvocatoria;
//	}
//	public void setNuevaConvocatoria(Convocatoria nuevaConvocatoria) {
//		this.nuevaConvocatoria = nuevaConvocatoria;
//	}
//	public List<Convocatoria> getListaConvocatorias() {
//		return listaConvocatorias;
//	}
//	public void setListaConvocatorias(List<Convocatoria> listaConvocatorias) {
//		this.listaConvocatorias = listaConvocatorias;
//	}
//	public HtmlDataTable getTablaConvocatoria() {
//		return tablaConvocatoria;
//	}
//	public void setTablaConvocatoria(HtmlDataTable tablaConvocatoria) {
//		this.tablaConvocatoria = tablaConvocatoria;
//	}
//	public Convocatoria getConvocatoriaSeleccionada() {
//		return convocatoriaSeleccionada;
//	}
//	public void setConvocatoriaSeleccionada(Convocatoria convocatoriaSeleccionada) {
//		this.convocatoriaSeleccionada = convocatoriaSeleccionada;
//	}
//	public boolean isConvocatoriaCreada() {
//		return convocatoriaCreada;
//	}
//	public void setConvocatoriaCreada(boolean convocatoriaCreada) {
//		this.convocatoriaCreada = convocatoriaCreada;
//	}
//	public boolean isConvocatoriaEditada() {
//		return convocatoriaEditada;
//	}
//	public void setConvocatoriaEditada(boolean convocatoriaEditada) {
//		this.convocatoriaEditada = convocatoriaEditada;
//	}
//	public boolean isConvocatoriaEliminada() {
//		return convocatoriaEliminada;
//	}
//	public void setConvocatoriaEliminada(boolean convocatoriaEliminada) {
//		this.convocatoriaEliminada = convocatoriaEliminada;
//	}
//	public String getEstado() {
//		return estado;
//	}
//	public void setEstado(String estado) {
//		this.estado = estado;
//	}
//	
}
